﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Controller; // Brug vores class library "Controller"
using Interfaces; // Brug vores class library "Interfaces"

namespace Sorts_F1
{
    public partial class FrmRedigerTeams : Form
    {
        // Attribut
        ClsSystemController systemController;

        public FrmRedigerTeams(ClsSystemController systemController) // modtager controlleren fra start formen
        {
            InitializeComponent();
            this.systemController = systemController; // Istedet for at instansiere en ny controller bruger vi den der bliver sendt med
            this.MinimumSize = this.MaximumSize = this.Size; // Sørg for at formen altid er den nuværende størrelse
        }

        private void btnTilbage_Click(object sender, EventArgs e)
        {
            this.Close(); // Lukker formen
        }

        private void FrmRedigerTeams_Load(object sender, EventArgs e)
        {
            OpdaterFormen(); // Opdaterer formen når den loades

            cbTeamNummer.SelectedIndex = 0; // Vælg det første element i comboboxen
        }

        private void btnRedigerTeams_Click(object sender, EventArgs e)
        {
            try
            {
                systemController.RedigerTeamsIDB(txtTeamNavn.Text, int.Parse(cbTeamNummer.SelectedItem.ToString())); // Brug metoden til at opdatere informationer i databasen
                txtTeamNavn.Clear();

                systemController.OpdaterTeamsFraDB();
                systemController.OpdaterKoerereFraDB();
                
                OpdaterFormen(); // Opdaterer formen så det nye data kommer ind
            }

            catch
            {
                OpdaterFormen();
                MessageBox.Show("Teamet kunne ikke oprettes.");
            }

        }

        public void OpdaterFormen()
        {
            lvTeams.Items.Clear(); // Clear listviewet for at gøre klar til nye opdaterede data

            foreach (var item in systemController.VisTeams())
            {
                // Indlæs teamnumre fra teams i comboboxen
                cbTeamNummer.Items.Add(item.TeamNummer.ToString());

                ListViewItem data = new ListViewItem(); // Instansiere listview
                data.SubItems[0].Text = item.TeamNummer.ToString();
                data.SubItems.Add(item.TeamNavn);

                lvTeams.Items.Add(data); // Addere subitems til listviewet

            }
        }
    }
}
